package com.tj.bo.trade.client;

import com.tj.bo.trade.client.request.TradeByPageQueryRO;
import com.tj.bo.trade.client.response.TradeInfoListRO;
import com.tj.bo.trade.client.response.TradeInfoRO;

import java.util.List;

/**
 * @program: binary-option
 * @description 订单查询接口
 * @author: binary
 * @create: 2020-06-05 14:47
 **/
public interface TradeQueryService {

    /**
     * 根据订单号查询订单信息
     *
     * @param tradeNo
     * @return
     */
    TradeInfoRO queryTradeInfo(String tradeNo);

    /**
     * 根据条件分页查询订单信息
     *
     * @param tradeByPageQueryRO
     * @return
     */
    TradeInfoListRO queryTradeInfoListByPage(TradeByPageQueryRO tradeByPageQueryRO);

    /**
     * 查询开盘中的订单数
     *
     * @param userCode
     * @return
     */
    Integer countOpeningOrdersByUserCode(String userCode, Integer tradeType);

    /**
     * 根据userCode、tradeType、productCode查询开盘中的交易列表
     *
     * @param userCode
     * @param tradeType
     * @param productCode
     * @return
     */
    List<TradeInfoRO> queryOpeningOrdersByUserCode(String userCode, Integer tradeType, String productCode);

    /**
     * 是否该产品的新客
     *
     * @param userCode
     * @param productCode
     * @return
     */
    boolean isProductNewUser(String userCode, String productCode);


    List<TradeInfoRO> getOpeningOrders();
}
